This is a collection of routines for managing a heap data structure.

There are two major components: a heap component, and an element
component.

A heap package basically keeps a collection of elements and is
able to return the smallest one.

The heap component interface is defined in Heap(3) and must be
supported by all heap packages.  Currently there are three heap
components provided:

    Heap::Fibonacci  (the preferred one)
    Heap::Binomial
    Heap::Binary

See the book "Algorithms" by Cormen, Leiserson, and Rivest for
details of the three heap packages.
